home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / apps / 453 / mmrtx.c < prev    next >
C/C++ Source or Header  |  1987-04-12  |  5KB  |  277 lines

  1. /*
  2.  * RTX Bindings for Megamax C
  3.  *
  4.  * Written by: Alan Page
  5.  */
  6. extern rtx_install(), p_create(), p_priority(), p_delete();
  7. extern p_slice(), q_create(), q_delete(), q_send(), q_req();
  8. extern q_jam(), e_signal(), e_wait(), p_pause(), m_alloc();
  9. extern m_free(), m_assign(), p_lookup(), p_vector(), q_lookup();
  10. extern p_suspend(), p_resume(), d_install(), d_cntrl(), q_info();
  11. extern rtx_remove();
  12. extern bios(), gemdos(), xbios();
  13.  
  14. asm {
  15.  
  16. rtx_install:
  17.         move.l 4(A7),-(A7)
  18.         move.w #0,-(A7)
  19.         trap #5
  20.         addq.l #6,A7
  21.         rts
  22. p_create:
  23.         link A6,#0
  24.         move.l 26(A6),-(A7)
  25.         move.l 22(A6),-(A7)
  26.         move.w 20(A6),-(A7)
  27.         move.l 16(A6),-(A7)
  28.         move.w 14(A6),-(A7)
  29.         move.w 12(A6),-(A7)
  30.         move.l  8(A6),-(A7)
  31.         move.w #1,-(A7)
  32.         trap #5
  33.         unlk A6
  34.         rts
  35.  
  36. p_delete:
  37.         move.l 4(A7),-(A7)
  38.         move.w #2,-(A7)
  39.         trap #5
  40.         addq.l #6,A7
  41.         rts
  42.  
  43.  
  44. p_priority:
  45.         link A6,#0
  46.         move.w 12(A6),-(A7)
  47.         move.l  8(A6),-(A7)
  48.         move.w #3,-(A7)
  49.         trap #5
  50.         unlk A6
  51.         rts
  52.  
  53. p_slice:
  54.         link A6,#0
  55.         move.w 12(A6),-(A7)
  56.         move.l  8(A6),-(A7)
  57.         move.w #4,-(A7)
  58.         trap #5
  59.         unlk A6
  60.         rts
  61.  
  62. q_create:
  63.         link A6,#0
  64.         move.w 12(A6),-(A7)
  65.         move.l  8(A6),-(A7)
  66.         move.w #5,-(A7)
  67.         trap #5
  68.         unlk A6
  69.         rts
  70.  
  71. q_delete:
  72.         move.l 4(A7),-(A7)
  73.         move.w #6,-(A7)
  74.         trap #5
  75.         addq.l #6,A7
  76.         rts
  77.  
  78. q_send:
  79.         link A6,#0
  80.         move.l 12(A6),-(A7)
  81.         move.l  8(A6),-(A7)
  82.         move.w #7,-(A7)
  83.         trap #5
  84.         unlk A6
  85.         rts
  86.  
  87. q_req:
  88.         link A6,#0
  89.         move.l 18(A6),-(A7)
  90.         move.w 16(A6),-(A7)
  91.         move.l 12(A6),-(A7)
  92.         move.l 8(A6),-(A7)
  93.         move.w #8,-(A7)
  94.         trap #5
  95.         unlk A6
  96.         rts
  97.  
  98. q_jam:
  99.         link A6,#0
  100.         move.l 12(A6),-(A7)
  101.         move.l  8(A6),-(A7)
  102.         move.w #9,-(A7)
  103.         trap #5
  104.         unlk A6
  105.         rts
  106.  
  107. e_signal:
  108.         link A6,#0
  109.         move.w 12(A6),-(A7)
  110.         move.l  8(A6),-(A7)
  111.         move.w #0xA,-(A7)
  112.         trap #5
  113.         unlk A6
  114.         rts
  115.  
  116. e_wait:
  117.         link A6,#0
  118.         move.l 14(A6),-(A7)
  119.         move.w 12(A6),-(A7)
  120.         move.l  8(A6),-(A7)
  121.         move.w #0xb,-(A7)
  122.         trap #5
  123.         unlk A6
  124.         rts
  125.  
  126. p_pause:
  127.         move.l 4(A7),-(A7)
  128.         move.w #0xc,-(A7)
  129.         trap #5
  130.         addq.l #6,A7
  131.         rts
  132.  
  133. m_alloc:
  134.         move.l 4(A7),-(A7)
  135.         move.w #0xd,-(A7)
  136.         trap #5
  137.         addq.l #6,A7
  138.         rts
  139.  
  140. m_free:
  141.         move.l 4(A7),-(A7)
  142.         move.w #0xe,-(A7)
  143.         trap #5
  144.         addq.l #6,A7
  145.         rts
  146.  
  147. m_assign:
  148.         link A6,#0
  149.         move.l 12(A6),-(A7)
  150.         move.l  8(A6),-(A7)
  151.         move.w #0xf,-(A7)
  152.         trap #5
  153.         unlk A6
  154.         rts
  155.  
  156. p_lookup:
  157.         move.l 4(A7),-(A7)
  158.         move.w #0x10,-(A7)
  159.         trap #5
  160.         addq.l #6,A7
  161.         rts
  162.  
  163. q_lookup:
  164.         move.l 4(A7),-(A7)
  165.         move.w #0x11,-(A7)
  166.         trap #5
  167.         addq.l #6,A7
  168.         rts
  169.  
  170. p_vector:
  171.         link A6,#0
  172.         move.l 12(A6),-(A7)
  173.         move.l 8(A6),-(A7)
  174.         move.w #0x13,-(A7)
  175.         trap #5
  176.         unlk A6
  177.         rts
  178.  
  179.  
  180. p_suspend:
  181.     link A6,#0
  182.     move.l 8(A6),-(A7)
  183.     move.w #0x14,-(A7)
  184.     trap #5
  185.     unlk A6
  186.     rts
  187.  
  188.  
  189. p_resume:
  190.     link A6,#0
  191.     move.l 8(A6),-(A7)
  192.     move.w #0x15,-(A7)    
  193.     trap #5            
  194.     unlk A6
  195.     rts
  196.  
  197.  
  198. d_install:
  199.     link A6,#0
  200.     move.l 30(A6),-(A7)
  201.     move.l 26(A6),-(A7)
  202.     move.l 22(A6),-(A7)
  203.     move.l 18(A6),-(A7)
  204.     move.l 14(A6),-(A7)
  205.     move.l 10(A6),-(A7)
  206.     move 8(A6),-(A7)
  207.     move #0x16,-(A7)    
  208.     trap #5
  209.     unlk A6
  210.     rts
  211.  
  212. d_cntrl:
  213.     link A6,#0
  214.     move.l 10(A6),-(A7)    
  215.     move.w 8(A6),-(A7)    
  216.     move.w #0x17,-(A7)    
  217.     trap #5            
  218.     unlk A6
  219.     rts
  220.  
  221. q_info:
  222.     link A6,#0
  223.     move.l 16(A6),-(A7)
  224.     move.l 12(A6),-(A7)
  225.     move.l 8(A6),-(A7)
  226.     move.w #0x18,-(A7)
  227.     trap #5
  228.     unlk A6
  229.     rts
  230.  
  231. rtx_remove:
  232.         move.w #255,-(A7)
  233.         trap #5
  234.         addq.l #2,A7
  235.         rts
  236.  
  237. bios:
  238.         move #201,-(A7)
  239.         trap #5
  240.         addq.l #6,A7
  241.         trap #13
  242.         move.l D0,-(A7)
  243.         move #203,-(A7)
  244.         trap #5
  245.         addq.l #2,A7
  246.         move.l D0,A0
  247.         move.l (A7)+,D0
  248.         jmp (A0)
  249.  
  250. xbios:
  251.         move #201,-(A7)
  252.         trap #5
  253.         addq.l #6,A7
  254.         trap #14
  255.         move.l D0,-(A7)
  256.         move #203,-(A7)
  257.         trap #5
  258.         addq.l #2,A7
  259.         move.l D0,A0
  260.         move.l (A7)+,D0
  261.         jmp (A0)
  262.  
  263. gemdos:
  264.         move #201,-(A7)
  265.         trap #5
  266.         addq.l #6,A7
  267.         trap #1
  268.         move.l D0,-(A7)
  269.         move #203,-(A7)
  270.         trap #5
  271.         addq.l #2,A7
  272.         move.l D0,A0
  273.         move.l (A7)+,D0
  274.         jmp (A0)
  275.  
  276. }
  277.